Formal reasoning about concurrent programs using a lazy- STM system

نویسندگان

  • Yong Li
  • Yu Zhang
  • Yi-Yun Chen
  • Ming Fu
چکیده

Transactional memory (TM) is an easy-using parallel programming model that avoids common problems associated with conventional locking techniques. Several researchers have proposed alternative hardware and software TM implementations. However, few ones focus on formal reasoning about programs using TM system. In this paper, we propose a framework at assembly level for reasoning about concurrent programs using a lazy-STM system. First, we give a software TM implementation based on storable locks. Then we define the semantics of the model operationally, and the synchronization constructs in transaction are light-weight and nonblocking, and it will not lead to deadlocks in transaction. Finally we devise a logic – a combination of permission accounting in separation logic and concurrent separation logic – to verify various properties of concurrent programs based on this machine model. The whole framework is formalized using a proofcarrying-code (PCC) framework.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Mixed Lazy/Strict Graph Semantics

Explicitly enforcing strictness is often used by functional programmers as an important tool for making applications fit time and space efficiency requirements. Few functional programmers however, are familiar with the consequences of explicitly enforcing strictness for formal reasoning about their programs. Some “folklore” knowledge has emerged but this is based on experience rather than on ri...

متن کامل

Proving Lazy Folklore with Mixed Lazy/strict Semantics

Abstract. Explicit enforcement of strictness is used by functional programmers for many different purposes. Few functional programmers, however, are aware that explicitly enforcing strictness has serious consequences for (formal) reasoning about their programs. Some vague “folklore” knowledge has emerged concerning the correspondence between lazy and strict evaluation but this is based on exper...

متن کامل

Region-Based Dynamic Separation for STM Haskell

We present a design and implementation of dynamic separation in STM Haskell. Dynamic separation is a recent approach to software transactional memory (STM) that achieves strongly-atomic semantics with performance comparable to that of a weakly-atomic STM. STM Haskell, a lazy-versioning STM library for Haskell, previously supported strongly-atomic semantics via static separation, and we have fou...

متن کامل

Reasoning about explicit strictness in a lazy language using mixed lazy/strict semantics

Abstract. Many functional programmers are familiar with the concept of enforcing strictness for making applications fit their time and space efficiency requirements. Few functional programmers however, are familiar with the consequences of enforcing strictness for formal reasoning about their programs. This paper attempts to fill the gap between the few and the many. Some typical examples are g...

متن کامل

Design and implementation of static analyses for higher-order languages

interpretation-based static analyzers. This insight provided a way of extracting the common patterns in the design and implementation of static analyzers and led to the idea of considering abstract interpretation as a particular case of computational effects, which can be abstracted over using a concept of monads from functional programming. This idea was presented in my work on monadic abstrac...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008